package com.zerosky.crm.dao;

import java.util.List;
import java.util.Map;

import com.zerosky.crm.po.Contacts;
import com.zerosky.crm.po.Department;
import com.zerosky.crm.po.ExportAllChartSales;

/**
 * Department数据接口
 * 
 * @author Administrator
 *
 */
public interface DepartmentDAO {

	/**
	 * 获取全部信息
	 * 
	 * @return
	 */
	public List<Department> getDepartmentList(Map map);

	/**
	 * 获取记录数量
	 * 
	 * @param map
	 * @return
	 */
	public int countDepartment(Map map);

	/**
	 * 获取单个对象
	 * 
	 * @param id
	 * @return
	 */
	public Department getDepartmentById(String deptId);

	/**
	 * 添加信息
	 * 
	 * @param dept
	 * @return
	 */
	public int addDepartment(Department dept);

	/**
	 * 修改信息
	 * 
	 * @param dept
	 * @return
	 */
	public int updateDepartment(Department dept);

	/**
	 * 删除部门信息
	 * 
	 * @param deptId
	 * @return
	 */
	public int deleteDepartmentById(String deptId);
	
	/**
	 * 统计所有部门员工数
	 * @param map
	 * @return
	 */
	public List<Department> getDeptPhoneBookList();
	
	/**
	 * 根据remake获取数据
	 * @param remake 职能
	 * @return
	 */
	public List<Department> getDeptNameList(String remake);
	
	/**
	 * 通讯录统计总公司员工数
	 * @param map
	 * @return
	 */
	public List<Contacts> getContactsRemake(Map<String, Object> map);
	
	/**
	 * 通讯录统计分公司员工数
	 * @param map
	 * @return
	 */
	public List<Contacts> getContactsDept(Map<String, Object> map);
	
	/**
	 * 通讯录统计部门员工数
	 * @param map
	 * @return
	 */
	public List<Contacts> getContactsBranch(Map<String, Object> map);
	
	/**
	 * 通讯录统计团队员工数
	 * @param map
	 * @return
	 */
	public List<Contacts> getContactsTeam(Map<String, Object> map);
	
	/**
	 * 获取分公司部门团队
	 * @param map
	 * @return
	 */
	public List<ExportAllChartSales> getDeptBranchTeam(Map<String, Object> map);
}
